1. Field of the Invention
The present invention relates to a real time stream server for supplying a plurality of real time stream data in different data rates simultaneously to clients, and a method for operating the real time stream server.
2. Description of the Background Art
Data to be sequentially transferred in real time such as video data and audio data are generally called "real time stream data". For a real time stream server for handling such real time stream data, a necessary condition is that it should be able to transfer the real time stream data stored in disk devices to each client while guaranteeing a continuity in real time.
In order to satisfy this condition, in the prior art, the real time stream data are stored in disks by being divided into blocks of a size to be transferred in a prescribed period of time, and the server makes accesses to disks periodically for each stream. The read out blocks are stored in a buffer memory once, and periodically transferred to corresponding clients through a communication network.
A stream scheduling device is a device which realizes a management of timings for issuing disk access commands and data transfer commands in this operation.
In addition, the scheduling device establishes a new stream channel upon receiving a connection request from a user. In order to manage disk accesses and data transfer timings, the scheduling device provides time-slots as shown in FIG. 1 which are partitioned at constant time interval. One disk access is allocated to one time-slot, and one disk access reads out one block of the real time stream data. A period of disk access in one stream is constant, so that by allocating disk accesses of different streams to different time-slots, it becomes possible to share the same stored data among a plurality of streams.
In an example shown in FIG. 1, four time-slots are provided in one period. That is, three disk devices with a read multiplexing level 4 are provided, and blocks are striped over these three disk devices. Consequently, an access period for one disk device is 4.times.3=12 time-slots, and a maximum number of simultaneously connectable streams is 12.
As shown in FIG. 1, time-slots by which one stream makes accesses to the disk devices are distanced from each other by the access period of four time-slots. For example, after a read block A1 (a block-1 of the real time stream data A) is read out, it is transferred to a client-0 and processed (e.g., reproduced) in real time, and then a block A2 is read out and transferred before the processing of a block A1 is finished. In this manner, the scheduling is made so that each stream does not influence the continuity of the other streams.
FIG. 1 shows an exemplary case of a scheme in which the disk access allocated to the time-slot is fixed, but there is also a scheme in which an allocation position of a disk access is made variable among time-slots within a tolerable jitter range, by noting the fact that a time-slot to which a disk access is to be allocated can be changed during a period since a buffer memory becomes available until a transfer start timing (see, Japanese Patent Application No. 7-57384 (1995)). Here, a range of time-slots to which a disk access of one stream can be allocated is called tolerable jitter range of that stream.
FIG. 2 shows an exemplary tolerable jitter range. In a case where all the real time stream data to be handled have the same data rate, the scheduling becomes easier by a scheme utilizing the tolerable jitter range.
Now, in a case of handling real time stream data with a higher data rate, a block size becomes larger, and there can be a case in which a reading from a disk cannot be completed within one time-slot.
In order to avoid such a situation, if a time-slot interval and a block size are fixedly set in accordance with the real time stream data with the maximum data rate, there arises a problem in a case where real time stream data with a low data rate are to be supplied at the same time because it would become impossible to take a full advantage of a transfer capacity of the disk devices. This is due to the fact that, for the same period, the block size changes in proportion to the data rate.
On the other hand, when a time-slot interval is varied according to a block size, it becomes difficult to realize a flexible disk access scheduling in which orders of disk accesses can be interchanged. In addition, the buffer memory management becomes complicated in such a case, because there is a need to secure a continuous region in a size of each block size as the buffer memory.
Moreover, when a block size is fixed regardless of a data rate, a period of access to one disk device is going to be different for different streams, and for this reason, it becomes difficult to judge whether it is possible to connect a new stream while guaranteeing the continuity of the already connected streams.
Thus, in a case of supplying a plurality of real time stream data with different data rates, it has conventionally been difficult to realize both a scheme for making the disk access scheduling easier by fixing a period of access to one disk device and a time-slot interval, and a scheme for taking a full advantage of a transfer capacity of disk devices by changing a number of data supply streams according to a data rate.